// 取消请求演示
const controller = new AbortController();
const signal = controller.signal;

// API 3s 后返回响应
// 注意，这里第二个参数用了一个 'signal' 选项
fetch("https://slowmo.glitch.me/3000", { signal })
  .then((r) => r.json())
  .then((response) => console.log(response))
  .catch((err) => {
    console.log(err.name);
    if (err.name === "AbortError") {
      console.log("Fetch was aborted");
    } else {
      console.error("Oops!", err);
    }
  });

// 2s 后执行终止操作
// 这会导致 fetch 请求被终止，同时产生一个 'AbortError' 错误。
setTimeout(() => {
  controller.abort();
}, 2000);
